草庐IT

Android HTML ImageGetter 作为 AsyncTask

全部标签

c++ - 我应该使用什么而不是 void 作为变体中的替代类型之一?

我想要一个变体,它可能包含Foo类型、(不相交的)Bar类型,或者什么都不包含。好吧,自然地,我在考虑使用std::variant-但这似乎不起作用。也就是说,您可以定义此类型,但如果您尝试实例化此类型,您将失败(GCC8.2)。那我该用什么呢?某种空结构? 最佳答案 您真正想要的是备选方案中的一种类型,它具有单个可能值-而不是void,它没有可能的值(并且在其他方​​面存在问题)。换句话说:Aunittype而不是bottomtype.标准库已定义为的一部分,此用例的“单元类型”:std::monostate(是的,它本质上是一个

c++ - 将 std::sub_match 作为参数传递给 std::thread 时出了什么问题?

我将std::sub_match作为参数传递给std::thread(请参阅下面的示例代码)。线程函数需要一个const字符串引用。sub_match可以转换为字符串。所以一切都可以正常编译。但有时函数会收到错误的字符串。当我在将sub_match传递给线程之前将其转换为字符串时,它会按预期工作。有什么区别?我认为这是一个竞争条件,因为当线程执行时,原始的sub_match可能不再存在。但我认为线程的参数无论如何都会被复制。我如何找出哪些参数可以安全传递给线程,哪些不安全?#include#include#include#include#include#includeclasstest

c++ - 在 C++ 文件中:作为 ios::binary 打开的文件与作为 ios::binary | 打开的文件有何不同? ios::出来了?

如果我打开这样的文件:ofstreamfile("file.dat",ios::binary);或ofstreamfile("file.dat",ios::binary|ios::out);对于以后一种形式打开的文件我能做些什么而我不能用前一种形式做,反之亦然谢谢 最佳答案 对于ofstream,ios::out是默认值,因此没有区别。我相信唯一一次指定ios::out会有所不同的是,如果您使用fstream,它可以打开用于读取或写入,或两者兼而有之。 关于c++-在C++文件中:作为i

c++ - 如何将 'this' 作为参数传递给另一个没有循环依赖的类构造函数?

我特别想到策略模式(设计模式,GoF94),其中建议传递给策略构造函数的上下文可以是包含策略(作为成员)本身的对象。但以下内容不起作用://analysis.hclassStrategyBase;classStrategy1;classStrategy2;classAnalysis{...voidChooseStrategy();private:StrategyBase*_s;...};//analysis.cppvoidAnalysis::ChooseStrategy(){if(...)_s=newStrategy1(this);elseif(...)_s=newStrategy2(

C++:作为条件语句的逻辑比较?

遇到一些使用它的代码,这让我想知道。if(condition)foo=bar();condition&&(foo=bar());这两段代码是不是相当于一个编译器?如果不是,它们会有哪些不同? 最佳答案 由于运算符优先,后者被解释为:(condition&&foo)=bar();此外,&&有可能被重载,这可能会导致几乎任何事情。简而言之:它们根本不相等-至少在一般情况下是这样。 关于C++:作为条件语句的逻辑比较?,我们在StackOverflow上找到一个类似的问题:

c++ - 一个抽象类可以作为其他具体类的成员作为组合关系吗? C++

P是一个抽象类,我想让它成为普通具体类A的成员。是否可能,如果是,如何。关系即构成感谢帮助 最佳答案 由于P是抽象的,您永远无法创建该类型的对象。但是,您可以将指向P的指针存储为类A的成员;然后,此指针成员可以指向P的(具体)子类的实例。 关于c++-一个抽象类可以作为其他具体类的成员作为组合关系吗?C++,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/9782055/

c++ - 如何为 libsvm 创建训练数据(作为 svm_node 结构)

我正在尝试使用libsvm以编程方式针对简单的异或问题训练支持vector机,以了解库的工作原理。问题(我认为)似乎是我错误地构造了svm_node;也许我无法理解整个指针指向指针的事情。有人可以帮忙吗?我首先为异或问题构造一个矩阵,然后尝试将矩阵中的值分配给svm_node(我在这里使用2个步骤,因为我的真实数据将采用矩阵格式)。当测试模型时,我得到了不正确的值(总是-1)。在上一个问题中,我得到了有关参数C和gamma的帮助;这些现在应该没问题了,因为我使用其他code得到了异或问题的正确分类.再次感谢Pedrom!我在几个地方搜索过答案,例如自述文件和SvmToy示例;然而没有运

c++ - unique_ptr vs 类实例作为成员变量

有一个类SomeClass,它包含一些数据和操作这些数据的方法。并且必须使用一些参数创建它,例如:SomeClass(intsome_val,floatanother_val);还有另一个类,比如Manager,它包括SomeClass,并大量使用它的方法。那么,在性能(数据局部性、缓存命中等)方面会更好,将SomeClass的对象声明为Manager的成员并使用成员初始化在Manager的构造函数中或将SomeClass的对象声明为unique_ptr?classManager{public:Manager():some(5,3.0f){}private:SomeClasssome;

c++ - 为什么 `const type& variable` 作为函数输入?

我正在将一些函数从Matlab转换为C++,其中有一些与矩阵有关。我在Internet的某处找到了这个简单的函数:typedefstd::vector>Matrix;Matrixsum(constMatrix&a,constMatrix&b){size_tnrows=a.size();size_tncols=a[0].size();Matrixc(nrows,std::vector(ncols));for(inti=0;i谁能解释一下为什么他们使用constMatrix&a而不是Matrixa作为输入?他们是否习惯使用它,或者使用它有什么好处,因为我没有看到2个版本(constMatr

c++ - 智能指针与值作为成员变量

我有一个类A,它具有M和N类型的成员变量。这些对象的生命周期应该受A的生命周期限制。我在考虑classA{Mmember1;Nmember2;}对比classA{std::unique_ptrmember1;std::unique_ptrmember2;}我不完全确定哪个更好,因为它们都能实现我想要的。成员的生命周期与对象绑定(bind),我不需要手动管理内存。每种设置的优点和缺点是什么? 最佳答案 如果使用std::unique_ptrM和N是多态层次结构的基类member1和member2是可选成员,可以是nullptrM和N足